package 系统资源类

import (
	"gitee.com/go_888/internal-call/gopsutil/host"
	"log"
)

func X取主机信息() X主机信息 {
	h, err := host.Info()
	if err != nil {
		log.Printf("取主机信息失败：%v", err)
		return X主机信息{}
	}
	return X主机信息{
		X主机名:      h.Hostname,
		X系统运行时间_秒: h.Uptime,
		X启动时间_秒:   h.BootTime,
		X进程数:      h.Procs,
		X系统类型:     h.OS,
		X平台名称:     h.Platform,
		X平台家族:     h.PlatformFamily,
		X平台版本:     h.PlatformVersion,
		X内核版本:     h.KernelVersion,
		X原生CPU架构:  h.KernelArch,
		X虚拟化系统:    h.VirtualizationSystem,
		X虚拟化角色:    h.VirtualizationRole,
		X主机ID:     h.HostID,
	}
}

type X主机信息 struct {
	X主机名      string `json:"hostname"`             // 主机名
	X系统运行时间_秒 uint64 `json:"uptime"`               // 系统运行时间_秒
	X启动时间_秒   uint64 `json:"bootTime"`             // 启动时间_秒
	X进程数      uint64 `json:"procs"`                // 进程数
	X系统类型     string `json:"os"`                   // 系统类型, 如: freebsd, linux, windows
	X平台名称     string `json:"platform"`             // 平台名称, 如: ubuntu, linuxmint, Microsoft Windows 10 Pro
	X平台家族     string `json:"platformFamily"`       // 平台家族, 如: debian, rhel, Standalone Workstation
	X平台版本     string `json:"platformVersion"`      // 平台版本
	X内核版本     string `json:"kernelVersion"`        // 内核版本
	X原生CPU架构  string `json:"kernelArch"`           // 在运行时查询的原生CPU架构，返回由`uname -m`命令获取的内容，如果出现错误则返回空字符串
	X虚拟化系统    string `json:"virtualizationSystem"` // 虚拟化系统
	X虚拟化角色    string `json:"virtualizationRole"`   // 虚拟化角色
	X主机ID     string `json:"hostId"`               // 主机ID
}
